﻿Imports Logica

''' <summary>
''' Registra un departamento
''' </summary>
''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
Public Class RegistrarDepartamento

    ''' <summary>
    ''' Se utiliza para cuando carga un departamento
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub RegistrarDepartamento_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        btnLimpiar_Click(sender, e)
        txtNombre.Focus()
    End Sub

    ''' <summary>
    ''' Se utiliza para limpiar los campos de texto
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub btnLimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click

        txtNombre.Text = ""
        txtDescripcion.Text = ""
        lblError.Text = ""

    End Sub

    ''' <summary>
    ''' Boton para registrar el departamento
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub btnRegistrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRegistrar.Click

        ' Validar los controles de texto.
        For Each control As Control In gbRegistrarDep.Controls
            If TypeOf control Is TextBox Then
                If control.Text = "" Or control.Text.Trim = "" Then
                    control.Focus()
                    lblError.ForeColor = Color.Red
                    lblError.Text = "El campo '" & control.Tag & "' está vacío."
                    Exit Sub
                End If
            End If
        Next

        Try


            Gestor.departamentoRegistrar(txtNombre.Text, txtDescripcion.Text)

            txtNombre.Text = ""
            txtDescripcion.Text = ""

            lblError.ForeColor = Color.Green
            lblError.Text = "Departamento registrado correctamente."


        Catch ex As SqlClient.SqlException When ex.Number.Equals(4060)

            lblError.ForeColor = Color.Red
            lblError.Text = "Error de conexión con la base de datos."

        Catch ex As Exception

            lblError.ForeColor = Color.Red
            lblError.Text = ex.Message

        End Try

    End Sub

    ''' <summary>
    ''' Si se escribe un numero el evento no se maneja
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub txtNombre_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombre.KeyPress

        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            lblError.ForeColor = Color.Red
            lblError.Text = "El sistema no permite números en el nombre del departamento."
            e.Handled = True
        End If

    End Sub

    ''' <summary>
    ''' Si se escribe un numero el evento no se maneja
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub txtDescripcion_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtDescripcion.KeyPress

        If Char.IsLetter(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsControl(e.KeyChar) Then
            e.Handled = False
        ElseIf Char.IsSeparator(e.KeyChar) Then
            e.Handled = False
        Else
            lblError.ForeColor = Color.Red
            lblError.Text = "El sistema no permite números en la descripción del departamento."
            e.Handled = True
        End If

    End Sub

    ''' <summary>
    ''' Si inserta algo nuevo en el textbox se limpia el label de error
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub txtDescripcion_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDescripcion.TextChanged
        lblError.Text = ""
    End Sub

    ''' <summary>
    ''' Si inserta algo nuevo en el textbox se limpia el label de error
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub txtNombre_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNombre.TextChanged
        lblError.Text = ""
    End Sub

    ''' <summary>
    ''' Si la pantalla no esta activa resetea los campos
    ''' </summary>
    ''' <param name="sender">El objeto que lo envía</param>
    ''' <param name="e">Argumentos del evento</param>
    ''' <remarks>Creado por: David Murillo, Creado: 12/06/2010, Modificado: 30/06/2010</remarks>
    Private Sub RegistrarDepartamento_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Leave
        lblError.Text = ""
    End Sub
End Class
